package com.java.imauoj.mapper;

import com.java.imauoj.moudel.Role;
import org.apache.ibatis.annotations.*;

import java.util.List;

public interface RoleMapper {

    @Select("select * from role where role_id=#{role_id}")
    Role getRole(@Param("role_id") int role_id);

    @Insert("insert into role(name,note,is_login,is_to_back,is_get_user,is_ope_user," +
            "is_get_role,is_ope_role,is_get_problem,is_ope_problem,is_get_contest,is_ope_contest," +
            "is_get_contest_problem,is_ope_contest_problem,is_get_contest_user,is_ope_contest_user," +
            "is_get_message,is_ope_message,is_submit_code,is_get_solution,is_get_solution_rank,is_get_class,is_opt_class) values(" +
            "#{name},#{note},#{is_login},#{is_to_back},#{is_get_user},#{is_ope_user},#{is_get_role}," +
            "#{is_ope_role},#{is_get_problem},#{is_ope_problem},#{is_get_contest},#{is_ope_contest}," +
            "#{is_get_contest_problem},#{is_ope_contest_problem},#{is_get_contest_user},#{is_ope_contest_user}," +
            "#{is_get_message},#{is_ope_message},#{is_submit_code},#{is_get_solution},#{is_get_solution_rank},#{is_get_class},#{is_opt_class})")
    @Options(useGeneratedKeys=true, keyProperty="role_id", keyColumn="role_id")
    void addRole(Role role);

    @Delete("delete role where role_id=#{role_id}")
    void deleteRole(int role_id);

    @Update("update role set role_id=#{role_id},name=#{name},note=#{note},is_login=#{is_login},is_to_back=#{is_to_back}," +
            "is_get_user=#{is_get_user},is_ope_user=#{is_ope_user},is_get_role=#{is_get_role},is_ope_role=#{is_ope_role}," +
            "is_get_problem=#{is_get_problem},is_ope_problem=#{is_ope_problem},is_get_contest=#{is_get_contest},is_ope_contest=#{is_ope_contest}," +
            "is_get_contest_problem=#{is_get_contest_problem},is_ope_contest_problem=#{is_ope_contest_problem},is_get_contest_user=#{is_get_contest_user},is_ope_contest_user=#{is_ope_contest_user}," +
            "is_get_message=#{is_get_message},is_ope_message=#{is_ope_message},is_submit_code=#{is_submit_code},is_get_solution=#{is_get_solution},is_get_solution_rank=#{is_get_solution_rank},is_get_class=#{is_get_class},is_opt_class=#{is_opt_class}")
    void updateRole(Role role);

    @Select("select * from role")
    List<Role> getRoleList();

}
